草庐IT

c++ - 从 C++ 类制作 Visual C++ DLL

全部标签

c# - 在 C# 项目中动态加载 DLL 文件 - 如何?

在我的项目中我需要使用插件。但是要在我的项目中使用这些,我需要导入插件的引用。由于我无法事先知道项目使用了多少或哪些插件,所以我想在我的项目中动态导入它们。Stringpath=Application.StartupPath;string[]pluginFiles=Directory.GetFiles(path,"*.dll");ipi=newIPlugin[pluginFiles.Length];Assemblyasm;for(inti=0;i在此代码示例中,我搜索了所有.dll文件并将它们放入字符串列表中。但是我现在如何加载所有这些.dll文件呢?或者有没有办法在不真正导入这些文件

c# - 从 C++/CLI 调用 C# dll 函数

我有一个C#dll。代码如下:publicclassCalculate{publicstaticintGetResult(intarg1,intarg2){returnarg1+arg2;}publicstaticstringGetResult(stringarg1,stringarg2){returnarg1+""+arg2;}publicstaticfloatGetResult(floatarg1,floatarg2){returnarg1+arg2;}publicCalculate(){}}现在,我打算用这种方式从C++调用这个dll。[DllImport("Calculatio

c# - 以编程方式检查 Gac 中是否存在 dll。如果存在,则将其显示在网格中

我将在一个文件夹中有一个dll列表,我想检查一个dll是否存在一个应用程序。如果是这样,我想在网格中添加该应用程序名称。任何人都可以告诉如何以编程方式执行此操作。提前致谢 最佳答案 执行assembly.LoadFrom并检查GlobalAssemblyCachetestAssembly=Assembly.LoadFrom(dllname);if(!testAssembly.GlobalAssemblyCache){//notingac} 关于c#-以编程方式检查Gac中是否存在dll。

c# - 使用 C/C++ 编写 DLL 以实现 .Net 互操作性

在我的C#应用程序中,我想用C编写一部分代码。我计划编写一个DLL女巫,可以与.Net互操作。我该怎么做? 最佳答案 基本上有三种正确的方法:使用C++/CLI。如果此DLL仅供.NET使用,这是最佳方式。使用“extern"C"”兼容的API,例如WindowsAPI本身。这是最便携的,但对于您的调用者来说不如使用类模型来表示您的对象方便。如果您真的打算用ANSIC(而不是C++)编写,这是最佳选择。对于此路径,您将函数编写为extern"C"returntype__stdcall__declspec(dllexport)func

c# - 如何在 C# 中制作 SOAP/WSDL 客户端?

我一直在PHP中使用它并找到了一些可以工作的东西,我所做的是:$client=newSoapClient("http://ws.cdyne.com/WeatherWS/Weather.asmx?wsdl");$fetchedArr=$client->GetCityForecastByZIP(array("ZIP"=>"10451"));//gettheweatherinthebronxYO!现在我希望我的WPF/C#应用程序也能这样做。c#中的等价物是什么? 最佳答案 最简单的方法是使用VS并添加Web引用。这会自动为您创建stub

c# - 缺少对 AsyncCtpLibrary.dll 的引用

我已经安装了API以使用C#5的新功能,但发生了一些奇怪的事情。我可以使用async关键字,但VS2010告诉我“找不到与任务相关的类型。您是否缺少对AsynCtpLibrary.dll的引用?”而且我在编译时也看到了一些错误,例如“compilerrequiredmember'System.Runtime.CompilerServices.AsyncMethodBuilder.Create'”AsyncCtpLibrary.dll在哪里?它解决了我的问题,将其添加到引用? 最佳答案 默认情况下,我认为是在“C:\Users\@us

c# - 从 Delphi 调用 C# dll

我用单一方法编写了.Net3.5dll,供Delphi.exe调用。不幸的是,它不起作用。步骤:1.使用代码创建C#3.5dll:publicclassMyDllClass{publicstaticintMyDllMethod(inti){MessageBox.Show("Thenumberis"+i.ToString());}}转到AssemblyProperties-->AssemblyInformation并选中“MakeAssemblyCOM-Visible”使用RegAsm.exe注册我的dll这会抛出Delphi异常,表明它无法连接dll。从非托管代码启用C#托管dll的使

c# - Visual Studio 2012 添加对错误 DLL 的引用

我在让VisualStudio在Release模式下构建我的项目时遇到了问题...它给我错误提示,程序集格式错误。结果是引用了一些x86程序集而不是x64程序集。PresentationCore、System.Data等程序集。我尝试过的事情:Debug模式,任何CPU都可以正常构建。Debug模式,x64构建良好。Release模式,任意CPU失效Release模式,x64失败(这是我想要构建我的项目的组合)当我尝试删除x86引用并将其切换为x64引用时,问题就出现了。VisualStudio只是添加旧的x86引用而不是x64引用。例如:我删除了C:\Windows\Microsof

c# - C#中使用反射制作动态LINQ语句

如果我有一个像这样的LINQ语句x=Table.SingleOrDefault(o=>o.id==1).o.name;如何使用反射将传入的变量替换为“id”和“name”?当我尝试时,我不断收到对象引用未设置为对象错误的实例。我的尝试是这样的x=(string)Table.SingleOrDefault(o=>(int?)o.GetType().GetProperty(idString).GetValue(o,null)==1).GetType().GetField(nameString).GetValue(x);任何帮助都会很棒。谢谢。 最佳答案

c# - 我如何在 C# 中制作参数 `out`?

我发现自己处于需要这样做的情况publicstaticvoidFill(thisSomeClassc,paramsoutobject[]p)并将其称为c.Fill(outi,outi2,outsz,outi3,outsz2);但是我收到错误errorCS1611:Theparamsparametercannotbedeclaredasreforout我怎样才能传入可变长度的参数并使它们可写?所有这些都是整数和字符串的混合 最佳答案 您不能让它将参数视为out(或ref)并使用params功能同时。它根本行不通。您可以做的最好的事情是